package annotation

import (
	"reflect"
)

// gspringBean 标识结构体为一个gspring中ioc容器bean
// 提供注解的作用，不让外部实现
type gspringBean interface {
	markGspringBeanAnnotation()
}

var _ gspringBean = (*Component)(nil)

// Component 开发者可以将它作为内嵌属性字段，并添加“value”tag定义beanName
type Component struct{}

// 约束了指针实现
func (*Component) markGspringBeanAnnotation() {}

// GetRtGspringBean 返回接口 [gspringBean] 的反射类型
func (*Component) GetRtGspringBean() reflect.Type {
	return reflect.TypeOf((*gspringBean)(nil)).Elem()
}
